@echo off
chcp 65001 >nul

setlocal enabledelayedexpansion

:: Git Bash 的路径（根据你的安装路径修改）
set "gitBash=C:\Program Files\Git\bin\bash.exe"

if not exist "%gitBash%" (
    echo ❌ 未找到 Git Bash，请检查路径！
    pause
    exit /b
)

:: 从剪贴板读取内容
for /f "usebackq tokens=*" %%a in (`powershell -command "Get-Clipboard"`) do (
    set "clipLine=%%a"
    goto :gotLine
)

:gotLine
if not defined clipLine (
    echo ⚠️ 剪贴板为空或无法读取！
    pause
    exit /b
)

:: 如果剪贴板内容是 http 或 https 开头，则自动补 git clone
echo %clipLine% | findstr /i "^http" >nul
if %errorlevel%==0 (
    set "clipLine=git clone %clipLine%"
)

echo ✅ 准备执行命令：
echo %clipLine%
echo.

:: 执行命令
"%gitBash%" --login -i -c "%clipLine%"


:: -------------------------------
:: 文件分类与文件夹复制脚本（GBK版）
:: -------------------------------

:: 创建目标文件夹
mkdir "01.doc" 2>nul
mkdir "02.src" 2>nul
mkdir "03.tag" 2>nul

:: 复制 zip 文件到 03.tag
echo 正在复制 zip 文件到 03.tag ...
for %%f in (*.zip) do (
    if exist "%%f" (
        echo 复制 %%f 到 03.tag
        copy "%%f" "03.tag\" >nul
    )
)

:: 复制 pdf/doc/png/jpg/ppt/pptx/xls/xlsx/docx 文件到 01.doc
echo 正在复制 pdf/doc/png/jpg/ppt/pptx/xls/xlsx/docx  文件到 01.doc ...
for %%f in (*.pdf *.doc *.png *.jpg *.ppt *.pptx *.xls *.xlsx *.docx) do (
    if exist "%%f" (
        echo 复制 %%f 到 01.doc
        copy "%%f" "01.doc\" >nul
    )
)

:: 复制含KMSV/JHB的文件夹到 02.src
echo 正在复制 KMSV / JHB 文件到 02.src ...
for /d %%d in (*) do (
    echo %%d | findstr /i "KMSV JHB r24y" >nul
    if not errorlevel 1 (
        dir /b "%%d" >nul 2>nul
        if errorlevel 1 (
            echo 文件夹 %%d 是空的，跳过复制。
        ) else (
            echo 复制文件夹 %%d 到 02.src ...
            xcopy "%%d" "02.src\%%d" /E /I /Y >nul
        )
    )
)

:: --------------------------------------
:: 将 01.doc 02.src 03.tag 移动到 so* 文件夹
:: --------------------------------------
echo.
echo 正在查找以 "so" 开头的文件夹...

set "targetFolder="

for /d %%d in (so*) do (
    set "targetFolder=%%d"
    goto :foundSo
)

:foundSo
if defined targetFolder (
    echo 找到目标文件夹：%targetFolder%
    echo 正在移动文件夹到 %targetFolder% ...
    echo 正在复制文件夹到 %targetFolder% ...

	xcopy "01.doc" "%targetFolder%\01.doc" /E /I /Y >nul
	xcopy "02.src" "%targetFolder%\02.src" /E /I /Y >nul
	xcopy "03.tag" "%targetFolder%\03.tag" /E /I /Y >nul

	:: 删除原文件夹
	rd /s /q "01.doc"
	rd /s /q "02.src"
	rd /s /q "03.tag"
    echo 移动完成！
) else (
    echo 没有找到以 "so" 开头的文件夹，跳过移动。
)

:: 切换当前工作路径到目标文件夹
    cd /d "%targetFolder%"
    echo 当前工作路径已切换到：%cd%
)

:: --------------------------------------
:: 在 SO* 文件夹内执行 git push，commit备注通过输入获取
:: --------------------------------------
echo.
echo 正在使用 Git Bash push 代码到远程仓库...

:: Git Bash 可执行路径（根据实际安装路径修改）
set "gitBashPath=C:\Program Files\Git\bin\bash.exe"

:: 删除锁文件，防止 git 锁报错
if exist ".git\index.lock" del ".git\index.lock"

:: 获取上上一级目录名称作为 commit 信息
for %%a in ("%cd%\..") do set parentDir=%%~nxa
set commitMsg=%parentDir%

:: 获取当前分支
for /f "tokens=*" %%b in ('git rev-parse --abbrev-ref HEAD') do set currentBranch=%%b

:: 确保 Git Bash 存在
if exist "%gitBashPath%" (
    :: 执行 git add、commit、push
    "%gitBashPath%" --login -i -c "git add . && git commit -m \"销售单%commitMsg%提交\" && git push origin %currentBranch%"
    echo Git push 操作完成！
) else (
    echo 未找到 Git Bash，请检查 gitBashPath 路径！
)

echo.
echo 所有操作完成！
pause
